Cteni pole bytu z ActiveX componenty

Otázka od: j.binder@albacon.cz

13. 8. 2004 22:18

Ahoj,
 uz jsem se sice jednou neuspesne ptal, ale protoze s problemem nemuzu hnout,
tak to zkusim jeste jednou.
Mam ActiveX komponentu, ktera mi vraci pole bytu. V importovanem rozhrani je v
prislusna metoda deklarovana jako XXX(var ReceivedData: OleVariant)

Zkousel jsem zhruba toto
var v: OleVariant;
  v := VarArrayCreate([0,76], varByte), resp.
v := VarArrayRef( VarArrayCreate([0,76], varByte))
....
XXX(v)

Zcela zjevne vsak metoda dostane neco jineho nez ceka, protoze misto dat se mi
vraci chyby jako Acces violation, external exception, privilegid instruction,
safe array locked ....

V chodicim prikladu HTML/VBScriptu je toto volani
dim ReceiveData(76)
ActiveXCtrl.XXX(ReceiveData(0))

v dokumentaci je uvedena hlavicka
XXX(VARIANT* ReceiveData)

Uz na tom visim dlouho a nevim co s tim. Chyba asi bude u mne, ale nemuze byt
tez nejaka nekompatibilita mezi COM objekty vytvorenymi ve VC++ a kodem
generovanym Delphi? Za kazdou pomoc predem moc dekuji.

   Zdravi Jiri Binder